package jdbc;

import com.mysql.cj.jdbc.MysqlDataSource;

import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Scanner;

public class Demo1 {
    public static void main(String[] args) throws SQLException {
        Scanner scanner=new Scanner(System.in);
        //1.进行数据源的创建；
        DataSource dataSource=new MysqlDataSource();
        ((MysqlDataSource) dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/java_2025_9_25?characterEncoding=utf8&useSSL=false");
        ((MysqlDataSource) dataSource).setUser("root");
        ((MysqlDataSource) dataSource).setPassword("123456");
        //2,进行和数据库服务器进行连接；
        Connection connection=dataSource.getConnection();
        //mysql可以进行识别SQL语句，java进行数据库的操作的时候要想进行与数据库进行信息交互，
        // 就需要进行通过SQL进行交互，所以需要通过java代码进行构建相关的SQL字符串，进行数据的交互；
        //但由于SQL字符串不符合jdbc的要求，所以就把SQL字符串构建成队对象进行相关的交互；
        System.out.println("请输入你的学号: ");
        int id=scanner.nextInt();
        System.out.println("请输入你的姓名： ");
        String name=scanner.next();
        String sql="insert into student10_25 values(?,?)";
        //上述的问号表示占位符；
        //接下来进行数据的SQL字符串对象的相关校验；
        PreparedStatement statement=connection.prepareStatement(sql);
        //进行设置占位符中相关的数据；
        statement.setInt(1,id);
        statement.setString(2,name);
        //3进行数据的传输；(将上述的SQL语句交由服务器进行处理），并进行获取返回结果（影响的行数）；
        int n=statement.executeUpdate();
        System.out.println("n="+n);
        //4,进行资源的释放；(释放的顺序和创建的顺序是相反的);
        statement.close();
        connection.close();

    } 
    
}
